为什么我的程序编译不通过呢[noip]弱智题

来源:百度知道 编辑:UC知道 时间:2024/05/14 14:25:25
vijos里的一题 代码如下 文科生的悲哀 p1093
program wenke;
var:n,m,jieguo:integer;
sum:longint;
help:array[1..10000] of longint;
begin
readln(n);
if n>10000 then exit;
if n=1 then jieguo:=1;
if n=2 then jieguo:=1 else help[1]:=1;
help[2]:=1;
for m:=3 to n do
begin
help[m]:=help[m-2]+help[m-1];
end;
sum:=help[n];
jieguo:=sum mod 7654321;
writeln(jieguo);
end.
系统正在处理您的请求 请勿刷新此页……

文科生的悲哀

描述 Description
在这一学期一共有n次文科考试,考试科目有4种,分别为政治、历史、地理和综合。每次考哪一科是不定的,因此在考试前Matrix67不知道应该去复习哪一科的功课。他希望能预测出下一次可能考的科目。于是,他收集到了以往的文科考试的资料。从以往的考试中,他发现了这样几个规律:

1.如果这次考的是政治,那么下一次一定会考历史;
2.如果这次考的是综合,那么下一次一定会考地理;
3.如果这次考的是历史,那么下一次要么考政治,要么考地理;
4.如果这次考的是地理,那么下一次要么考历史,要么考综合。

Matrix67已经知道,本学期的第一次考试科目为政治。他打算拟定一个可以应对所有可能情况的应考复习计划。因此,他想知道,整个学期有多少种可能的考试科目安排满足以上规律。

program p1093;
type arr=array[1..10000]of int64;
var i,j,k,m,n,x:longint;
f,a,b,c:arr;
begin
read(n);
fillchar(c,sizeof(c),0);
a[1]:=0;b[1]:=1;c[1]:=1;
for i:=1 to n-1 do
begin
c[i+1]:=(a[i]+b[i])mod 7654321;
a[i+1]:=c[i];
b[i+1]:=c[i+1];
end;
write(c[n]);
end.

我的AC程序,你拿去看看吧

无法编译的原因非常简单
var后面多了个冒号

当然你的程序还存在很多不足 随时要mod 另外最好把integer换成longint

后面的答案会很大,超过longint,要边做边mod.

深搜!

同一